#if !defined(__DAEMON_SUB_PROCESS_H)
#define __DAEMON_SUB_PROCESS_H

#include <sys/types.h>

#define MAX_FAIL_COUNT 10
#define EXE_PATH "gateway_test"

typedef struct {
    pid_t pid;  // 子进程的PID
    char *cmd_param;    // 子进程启动参数
    int fail_count;   // 子进程启动失败次数
} SubProcess;

/**
 * @brief 子进程初始化
 * 
 * @param cmd_param 子进程启动参数
 * @return SubProcess* 子进程结构体指针
 */
SubProcess *daemon_sub_process_init(char *cmd_param);

/**
 * @brief 子进程启动
 * 
 * @param sp 子进程结构体指针
 * @return int 0:成功, -1:失败
 */
int daemon_sub_process_checkStart(SubProcess *sp);

/**
 * @brief 子进程停止
 * 
 * @param sp 子进程结构体指针
 */
void daemon_sub_process_stop(SubProcess *sp);

#endif // __DAEMON_SUB_PROCESS_H
